Skip to content

fix(deps): update rust crate fancy-regex to 0.19.2 - #355

Open
nextest-bot wants to merge 1 commit into
mainfrom
renovate/fancy-regex-0.x
Open

nextest-bot wants to merge 1 commit into
mainfrom
renovate/fancy-regex-0.x

Conversation

@nextest-bot

@nextest-bot nextest-bot commented Jul 6, 2025 •

Copy link
Copy Markdown
Collaborator

This PR contains the following updates:

Package Type Update Change
fancy-regex dependencies minor 0.14.0 → 0.19.2

Warning

Some dependencies could not be looked up. Check the Dependency Dashboard for more information.


Release Notes

fancy-regex/fancy-regex (fancy-regex)

v0.19.2

Compare Source

Added
  • Add a leftmost_longest feature (off by default) that adds a method to the RegexBuilder/RegexOptionsBuilder for building a VM which would operate in leftmost-longest match mode instead of the regular leftmost-first mode. Useful for POSIX compliance. (#​281)
Changed
Fixed
  • Fix a panic in capture_names() for a pattern with a zero-repeated named group such as (?<n>a){0} (#​275)
  • Literal bytes were being encoded as utf-8 in Ascii mode, now they match the exact byte literal

v0.19.1

Compare Source

Added
  • Add a perf-dfa-full feature (off by default, mirroring the regex crate) that lets regex-automata eagerly build fully compiled dense DFAs for small patterns, for workloads that compile few regexes and match them very heavily (#​272)
Changed
  • Add VM instruction for case insensitive literals when in Unicode mode, to keep the build cost bounded (#​268) and ensured the toy example graph output remains readable instead of being super verbose (#​269)
  • Compilation performance: the regex-automata dependency no longer enables the dfa-build feature by default. With dfa-build enabled, meta::Regex eagerly determinizes a full dense DFA for every small pattern, which dominated build time of simple class-containing patterns (e.g. \b(extern)\s+(crate) compiled ~4x slower than with the regex crate, which also ships without dfa-build); searches use the lazy DFA instead, with no measurable match-time difference (#​272)
  • Compilation performance: identical delegated fragments within one compile now share a single regex-automata engine instead of each building their own. Alternation-heavy patterns (TextMate grammar lookbehinds especially) often repeat the same fragment many times; on such patterns this removes a large share of build time (#​277)
Fixed
  • The playground didn't show when a literal or backreference was being matched case insensitively in the analysis tree view (#​269)
  • Seek patterns could become very large when recursive backrefs and subroutine calls were inlined, without bringing much benefit (#​270)
  • The optimize_nested_repeats pass could rewrite an optional capture group like (\w+)? into (\w*), causing an unmatched optional group to be reported as an empty match (Some("")) instead of None (#​276)

v0.19.0

Compare Source

Added
  • Add BytesMode and the RegexInput trait so the matching and capture APIs can operate on strings or bytes, and allows to opt out of unicode handling if desired (#​248)
    • Also allows searching within a range without slicing (#​253)
    • Assertions can be overridden at runtime, if the regex builder allow_input_assertion_overrides option was used (#​254)
    • Search can be performed in anchored mode, searching only at the start position specified (#​263)
  • Add experimental seek optimization to only invoke the VM at candidate positions where a match could occur (#​246)
  • Add RegexBuilder::disallow_empty_match_at_eof_after_newline to reject empty matches at the end of the haystack following a trailing newline, to match Oniguruma behavior (#​247)
  • Add RegexSet API for efficiently matching multiple patterns against the same text (#​255)
Changed
  • Case-insensitive backreference comparison of non-ASCII text now uses direct Unicode simple case folding instead of building a regex engine per comparison, which makes patterns like (?i)(\w+)\1 orders of magnitude faster on non-ASCII haystacks. The comparison is now strict fold equality over the captured text's byte-length window: a case-folded prefix of the window no longer counts as a match (previously a substring search could accept one and misalign the match end)
  • Compilation performance: delegated regex-automata engines (including the whole pattern in the easy case) are now built from a directly-constructed Hir instead of a re-serialized pattern string, and RegexSet parses each pattern once for both of its set-wide engines instead of three times. This reduces compile time and peak compile memory, especially for RegexSet and small easy patterns
  • Match performance: the backtracking VM's working memory (saves, backtrack stack, delegate slots) is pooled and reused across runs, making is_match/find/find_iter and RegexSet candidate verification allocation-free per call; RegexSet::find_input no longer allocates at failed candidate positions. Short and repeated matches improve substantially (up to ~30% for small patterns, ~10% for find_iter over many matches); single very long backtracking runs, where per-run setup is fully amortized anyway, can be a few percent slower
  • Matches, CaptureMatches, Captures, and SubCaptureMatches are now generic over RegexInput, which is a breaking change for code that named these types explicitly (#​248)
  • Patterns no longer force Unicode mode during parsing, and inline (?u) / (?-u) flags are accepted when they agree with the builder configuration
Fixed
  • Fix bug whereby inline flags were not overriding the builder options (#​247)
  • Fix bug whereby \G optimizations were applying where they shouldn't, giving wrong results (#​256)
  • Support Oniguruma quantifier parsing rules, whereby swapped ordering causes possessiveness, + only causes possessiveness after ?, * or + (#​258)
Upgrade guide

If you previously stored i.e. Captures, you would need to change the type to Captures<str> to get the code to compile.

v0.18.0

Compare Source

Added
  • Add support for \N to mean any character except newline, for Oniguruma compatibility (#​206)
  • Add support for (*FAIL) backtracking control verb (#​210)
  • Add support for more \p{...} and \P{...} aliases, for Oniguruma compatibility (#​207)
  • Add support for word boundaries and zero-length fancy patterns inside variable lookbehinds (at top level) (#​216)
  • Add support for \R to mean general newline, matching all common line break characters, treating \r\n atomically (#​220)
  • Add support for the regex crate's (?R) CRLF mode flag (#​238)
  • Add support for subroutine calls (including recursion up to 20 levels deep, matching Oniguruma behavior) \g<1> (#​230)
  • Add support for Oniguruma's absent repeater (?~abc) (#​233)
  • Add support for ignoring empty matches (#​240)
  • Add support for treating unnamed capture groups as non-capturing when named groups exist (#​241)
Changed
  • RegexBuilder can now build multiple patterns with the same options (#​213)
  • Parsing of capture group names is now more lenient (#​241)
Fixed
  • Fixed bug with parsing nested character classes containing unescaped ] (#​211)

v0.17.0

Compare Source

Added
  • Add support for "easy" variable-length lookbehinds (enabled via new feature flag) (#​194, #​196)
  • Add support for more word boundaries: \b{start}, \b{end}, \b{start-half}, \b{end-half} (#​193)
  • Allow {...} repetition syntax after assertions (except in Oniguruma mode) (#​193)
  • Add Oniguruma mode flag to playground (#​199)
Changed
  • Rewrite Theory section of Readme in a more formal style (#​187)
  • Box CompileError in Error enum to reduce size (#​204)
  • Bail out early when \G fails to match for increased performance (#​198)
  • Handle ignore_whitespace case in parsing escape sequences (#​193)
  • Add tests to ensure that Regex is Send and Sync (#​195)
Fixed
  • Fix clippy lint warnings (#​204)

v0.16.2

Compare Source

Added
  • Add an "oniguruma mode" flag to control whether \< and \> are treated as literals or word-boundary assertions. (#​186)
  • Add support for const-size backrefs in lookbehinds. (#​182)
Changed
  • A few small internal changes which allowed us to expose a web-based playground for fancy-regex. (#​181)
Fixed
  • Fix behavior of repetition on an empty match. (#​179)
  • Always return the original input pattern when as_str is called. (#​185)
  • Fix panic when matching non-ascii text as part of a case insensitive backref. (#​189)
  • The toy example wasn't always showing the correct analysis or compiled program when optimizations were applied. (#​181)

v0.16.1

Compare Source

Fixed
  • Fixed a bug whereby sometimes a backreference to a non-existing capture group would compile successfully
    when it should fail, causing a panic in the VM when trying to match the regex. (#​174)

v0.16.0

Compare Source

Added
  • Add an optimization step after the pattern is parsed but before it is analyzed.
    Currently it only optimizes one specific use-case - where the expression is easy except
    for a trailing positive lookahead whose contents are also easy. The optimization is to delegate to the regex crate instead of using the backtracking VM. (#​171)
Changed
  • Patterns which are anchored to the start of the text (i.e. with ^ when not in multiline mode) should now fail faster when there is no match, because fancy-regex no longer tries to match at other positions. (#​170)
  • The CompileError for an invalid (numbered) backref has been updated to mention which backref was invalid (#​170)
  • Removed dependency on derivative (#​169)
Fixed
  • Fixed a bug whereby sometimes a capture group containing a backref to itself would cause a compile error, when it is valid - this fixes a few Oniguruma test cases (#​170)

v0.15.0

Compare Source

Added
  • Support \Z - anchor to the end of the text before any trailing newlines. (#​148)
  • Support \O - any character including newlines. (#​158)
  • The parser can now parse subroutine calls and relative backreferences (but execution is still unsupported). This is preparation for future work. Some new error variants have been added for features which can be parsed but are still otherwise unsupported.
  • Backreferences can now be case insensitive. (#​160)
  • RegexBuilder: Add options for multi_line, ignore_whitespace, dot_matches_new_line (#​165)
Fixed
  • Fix infinite loop when backtracking limit is hit (#​153)
  • Fix RegexBuilder.case_insensitive not always applying when it should. (#​163)
  • The toy example has had various bugfixes, and unit tests added. (#​152, #​159)

Configuration

📅 Schedule: (in timezone America/Los_Angeles)

  • Branch creation
    • "after 8pm,before 6am"
  • Automerge
    • "after 8pm,before 6am"

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Mend Renovate.

@codecov

codecov Bot commented Jul 6, 2025 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 87.40%. Comparing base (f8750f5) to head (74e9388).

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #355      +/-   ##
==========================================
- Coverage   88.47%   87.40%   -1.07%     
==========================================
  Files           4        4              
  Lines         399      389      -10     
==========================================
- Hits          353      340      -13     
- Misses         46       49       +3     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@nextest-bot
nextest-bot force-pushed the renovate/fancy-regex-0.x branch from ae5bc4d to 4559750 Compare August 1, 2025 03:31
@nextest-bot nextest-bot changed the title fix(deps): update rust crate fancy-regex to 0.15.0 fix(deps): update rust crate fancy-regex to 0.16.0 Aug 1, 2025
@nextest-bot
nextest-bot force-pushed the renovate/fancy-regex-0.x branch from 4559750 to 0fd2f29 Compare August 2, 2025 03:04
@nextest-bot nextest-bot changed the title fix(deps): update rust crate fancy-regex to 0.16.0 fix(deps): update rust crate fancy-regex to 0.16.1 Aug 2, 2025
@nextest-bot
nextest-bot force-pushed the renovate/fancy-regex-0.x branch from 0fd2f29 to f0268a3 Compare September 19, 2025 03:26
@nextest-bot nextest-bot changed the title fix(deps): update rust crate fancy-regex to 0.16.1 fix(deps): update rust crate fancy-regex to 0.16.2 Sep 19, 2025
@nextest-bot
nextest-bot force-pushed the renovate/fancy-regex-0.x branch from f0268a3 to 00e275a Compare December 13, 2025 04:06
@nextest-bot nextest-bot changed the title fix(deps): update rust crate fancy-regex to 0.16.2 fix(deps): update rust crate fancy-regex to 0.17.0 Dec 13, 2025
@nextest-bot
nextest-bot force-pushed the renovate/fancy-regex-0.x branch from 00e275a to 4eb1357 Compare April 1, 2026 03:47
@nextest-bot
nextest-bot force-pushed the renovate/fancy-regex-0.x branch from 4eb1357 to 4466b7b Compare May 1, 2026 05:06
@nextest-bot nextest-bot changed the title fix(deps): update rust crate fancy-regex to 0.17.0 fix(deps): update rust crate fancy-regex to 0.18.0 May 1, 2026
@nextest-bot
nextest-bot force-pushed the renovate/fancy-regex-0.x branch from 4466b7b to 1265bbe Compare August 5, 2026 04:29
@nextest-bot nextest-bot changed the title fix(deps): update rust crate fancy-regex to 0.18.0 fix(deps): update rust crate fancy-regex to 0.19.0 Aug 5, 2026
@nextest-bot
nextest-bot force-pushed the renovate/fancy-regex-0.x branch from 1265bbe to 74e9388 Compare September 14, 2026 07:09
@nextest-bot nextest-bot changed the title fix(deps): update rust crate fancy-regex to 0.19.0 fix(deps): update rust crate fancy-regex to 0.19.1 Sep 14, 2026
@nextest-bot
nextest-bot force-pushed the renovate/fancy-regex-0.x branch from 74e9388 to cdbc10e Compare September 20, 2026 06:15
@nextest-bot nextest-bot changed the title fix(deps): update rust crate fancy-regex to 0.19.1 fix(deps): update rust crate fancy-regex to 0.19.2 Sep 20, 2026

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant